/******************************************
* 兼容IE8 下的 console 未定义(有时间记得测试下 IE8下的 console 问题)
*****************************************/
window.console = window.console || (function(){
var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile
= c.clear = c.exception = c.trace = c.assert = function(){};
return c;
})();
//询问是否操作
function ask_action(_this,msg){
var url = _this.href;
if(!url){
url = $(_this).attr('data-url');
}
layer.confirm(msg, function (index) {
$.post(url,function(res){
layer.msg(res.msg,{time:res.time,end:function(){
if(res.url){
location.href = res.url;
} else {
location.reload();
}
}});
},'json');
});
return false;
}
function likes($key){}
$(function(){
/******************************************
* 清除页面上的错误提示
*****************************************/
function clear_form_error_tip($this){
$this.removeClass('tdy-form-error').parents('.tdy-form-error').removeClass('tdy-form-error');
}
$('body').on('change','select',function(){
clear_form_error_tip($(this));
});
$('body').on('focus','input',function(){
var val = $(this).val();
$(this).blur(function(){
if($(this).val() != val){
clear_form_error_tip($(this));
}
});
});
/******************************************
* 禁用所有 input 的历史记录 autocomplete 为 on 的例外
*****************************************/
$('input[type="text"]').each(function(){
if($(this).attr('autocomplete') != 'on'){
$(this).attr('autocomplete','off');
}
});
$('input[type="password"]').attr('autocomplete','new-password');
/******************************************
* 前台ajax提交表单
*****************************************/
$('body').on('submit','.ajax-form',function(){
var _layer = parent.layer;
var _this = $(this);
_this.find('.tdy-form-error').removeClass('tdy-form-error');
var load_index = _layer.load(2,{shade:0.5});
var formData = new FormData();
var url = this.action;
var files = _this.find('input[type="file"]');
_this.find('input[type="file"]').each(function(){
var name = $(this).attr('name');
//在后台ajax 提交时候发现 图片没选择时候 会是 undefined 所以加了这个过滤 20181205 饶
for(var i in $(this)[0].files){
if($(this)[0].files[i] != undefined){
formData.append(name, $(this)[0].files[i]);
}
}
// formData.append(name, $(this)[0].files[0]);
});
var data = _this.serializeArray();
$.each(data,function(index,val){
formData.append(val.name,val.value);
});
var $http = $.ajax({
url: url,
type: 'post',
data: formData,
// async: false,
dataType:'json',
cache: false,
contentType: false,
processData: false,
success: function (result) {
_layer.close(load_index);
//判断数据是不是成功修改
// 0,警告,1成功,2错误,3疑问,4锁定,5哭脸,6笑脸
$token = $http.getResponseHeader("__token__");
$("input[name='__token__']").val($token);
var time = result.time > 0 ? result.time : (result.time < 0 ? -1 : 2000)
if(time == '-1'){
//time == -1 说明是不想要提示 直接跳转
window.location.href = result.url;
}else{
_layer.msg(result.msg,{time:time,shade: 0.3,icon: result.code ? 1 : 2,end:function(){
if(result.url && result.url != '1'){
window.location.href = result.url;
} else if (result.code){
if(_this.attr('layer-type') == "parent"){
parent.location.reload();
} else {
location.reload();
}
} else if (!result.code && result.select){ //错误渲染错误节点并滚动到位置
$(result.select).addClass('tdy-form-error');
var slect_top = $(result.select).offset().top;
if($(result.select).next('div').length > 0 && $(result.select).next('div').find('.layui-input').length > 0){
$(result.select).next('div').find('.layui-input').addClass('tdy-form-error');
slect_top = $(result.select).next('div').find('.layui-input').top;
}
$(document).scrollTop(slect_top-50);
}
}});
}
},
error: function (data) {
_layer.close(load_index);
$token = $http.getResponseHeader("__token__");
$("input[name='__token__']").val($token);
alert("网络请求失败,请重试!");
}
});
return false;
});
});
function dd(val1,val2,val3,val4,val5,val6){
if(val1 != undefined){
console.log(val1);
}
if(val2 != undefined){
console.log(val2);
}
if(val3 != undefined){
console.log(val3);
}
if(val4 != undefined){
console.log(val4);
}
if(val5 != undefined){
console.log(val5);
}
if(val6 != undefined){
console.log(val6);
}
}
/******************************************
* in_array()js方法--判断一个值是否在数组中
*****************************************/
function in_array(search,array){
for(var i in array){
if(array[i]==search){
return true;
}
}
return false;
}
/******************************************
* layui下拉多选,需要配合layui使用
*****************************************/
function select_multiple(){
if(typeof formSelects == 'undefined'){
layui.config({
base: '/template/static/library/layui/'
}).extend({
formSelects: 'formSelects-v3'
});
}
layui.use(['form', 'formSelects'], function() {
$dom = $("select[xm-select]");
$dom.each(function(){
var name = $(this).attr('xm-select');
if(formSelects.value(name,'val') != null){
var number = formSelects.value(name,'val').length;
}else{
var number = 0;
}
if(number > 1){
$(this).parent().append(''+number+'');
}
if($('input[name="'+name+'"]').length < 1){
$(this).before('');
}
$(this).prev().val(formSelects.value(name,'val').join(','));
formSelects.render({
name:name,
on:function(data,arr,val,selected){
// console.log(111,name,data,arr,val,selected);
var number = arr.length;
$input = $(data.elem).prev();
if(number > 1){
if($(data.elem).parent().find('.checked_length').length < 1){
$(data.elem).parent().append(''+number+'');
} else {
$(data.elem).parent().find('.checked_length').text(number);
}
}else{
$(data.elem).parent().find('.checked_length').remove();
}
$input.val(formSelects.value(name,'val').join(','));
}
});
});
})
}
/******************************************
* 地区联动操作layui方法
*****************************************/
var area_data;
function area_linkage(selectname,data){
console.log('1111',selectname,data);
// 获取地区总数据 应该放大 触发事件里面,减少页面新打开的速度 20181223 饶立宝
//2019.5.11张德长 data传出来的值是对象,不能直接使用length判断,应该加上Object.keys(data)
if(typeof area_data == 'undefined' && !Object.keys(data).length || $.isArray(data) && !data.length){
// ajax 获取请求 api 获取到 地区数据
// area_json =======
$.ajax({
type:'post',
url:'/api/jsapi/get_area/',
dataType:"json",
async:false,//同步
success:function(res){
area_data = res;
},error:function(res){
console.log(res);
}
})
}else{
area_data = data;
}
console.log(123456,area_data);
layui.use('form',function(){
var form= layui.form;
form.on("select("+selectname+")", function (data) {
var $next = $(data.elem).parent().next().find('select');
var $nextAll = $(data.elem).parent().nextAll().find('select');
if($next.length == 0) {
return false;
}
$nextAll.each(function(){
$(this).children('option').not(':eq(0)').remove();
});
if(data.value){
var child = area_data[data.value]['child'];
if(child){
$.each(child,function(index,val){
$option = "";
$next.append($option);
})
}
}
form.render();
return false;
})
})
}
/******************************************
* 地区联动操作原生样式方法
*****************************************/
function native_area_linkage(selectname,data){
console.log(78789789);
$('.area_select').change(function(){
if(typeof area_data == 'undefined' && !Object.keys(data).length){
// ajax 获取请求 api 获取到 地区数据
$.ajax({
type:'post',
url:'/api/jsapi/get_area/',
dataType:"json",
async:false,//同步
success:function(res){
area_data = res;
},error:function(res){
console.log(res);
}
})
}
var value = $(this).children('option:selected').val();
if($(this).hasClass('sheng')){
$(this).siblings('select').each(function(){
$(this).children('option').not(':eq(0)').remove();
});
}else if($(this).hasClass('shi')){
$(this).next('select').children('option').not(':eq(0)').remove();
}
if(value && !$(this).hasClass('xian')){
var child = area_data[value]['child'];
$dom = $(this).next('select');
if(child){
$.each(child,function(index,val){
$option = "";
$dom.append($option);
});
}
}
})
}
/******************************************
* 地区联动删除添加的元素layui版
*****************************************/
function delete_dom(_this){
if($(_this).parents('div.layui-input-block').next('script').length > 0){
$(_this).parents('div.layui-input-block').next('script').remove();
}
$(_this).parents('div.layui-input-block').remove();
}
/*弹出指定 链接的 iframe 弹窗*/
function show_iframe(href,title,area){
var urlStr = href.substring(href.indexOf("/",9));
$_this = $('a[href="'+urlStr+'"]');
$_this.attr('href','javascript:void(0);');
if(title == undefined){
title = false;
}
console.log(href.indexOf('/index/member/login/'));
console.log(href);
console.log(href.indexOf('/index/member/login/') >= 0);
if(typeof($_Y) != 'undefined' && $_Y.ismobile){
area = ['100%','100%'];
} else if (href.indexOf('/index/member/login/') >= 0) {
area = ['778px','400px'];
} else if (area == undefined){
area = ['500px','400px'];
}
// 火狐不兼容,所以去除
// event.preventDefault();
if(href){
if(href.indexOf("iframe=1") == '-1' ){
if(href.indexOf("?") == '-1' ){
href += '?iframe=1';
} else {
href += '&iframe=1';
}
}
parent.layer.open({
type: 2
,title: title
,area: area
,content: href //这里content是一个普通的String
,end: function(){
$_this.attr('href',urlStr);
location.reload();
}
});
}
return false;
}
/***********************************
* 链接操作确认
**********************************/
function tdy_confirm(_this,title){
console.log(78978979);
$this = $(_this);
var url = $this.attr("data-url") ? $this.attr("data-url") : _this.href;
$this.attr('href','javascript:void(0);');
var token = $("input[name='__token__']").val();
if(typeof title == "undefined"){
title = '您确定要操作吗?';
}
layer.confirm(title,function (index) {
var $http = $.ajax({
type:"post",
dataType:"json",
data:{'__token__':token},
url:url,
success: function (res) {
$this.attr('href',url);
layer.msg(res.msg,{time:2000,shade:0.3,end: function () {
if(res.code == 1){
if(res.url && res.url != '1'){
window.location.href = res.url;
}else{
location.reload();
}
}else{
// $("input[name='__token__']").val($http.getResponseHeader("__token__"));
$token = $http.getResponseHeader("__token__");
$("input[name='__token__']").val($token);
}
}})
},error: function (res) {
$this.attr('href',url);
}
});
layer.close(index);
},function(index, layero){
$this.attr('href',url);
});
return false;
}
/***********************************
* 这里个方法废除掉 以后就用 tdy_confirm
**********************************/
function delete_way(_this,title){
tdy_confirm(_this,title);
}
/***********************************
* 生成随机数
**********************************/
function tdyRandom(n) {
var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var res = "";
for(var i = 0; i < n ; i ++) {
var id = Math.ceil(Math.random()*61);
res += chars[id];
}
return res;
}
function tdyRandomChar(n) {
var chars = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var res = "";
for(var i = 0; i < n ; i ++) {
var id = Math.ceil(Math.random()*51);
res += chars[id];
}
return res;
}
/*商品分类联动*/
function get_cate_html(selectname,data){
console.log(111122)
$('body').on('change','select[name="'+selectname+'_area[]"]',function(){
$(this).nextAll().remove();
var cate_area_id = $(this).val();
// if(cate_area_id == 0){
// return false;
// }
var arr = [];
console.log(cate_area_id);
if(cate_area_id != ''){
var name = $(this).attr('data-flg')
console.log(data);
var optionHtml = '';
$(this).after(optionHtml);
}
});
$('body').on('change','select[name="'+selectname+'[]"]',function(){
$(this).nextAll().remove();
var catid = $(this).val();
console.log(typeof(catid)+'----'+catid);
if(catid == '' || !catid){
return false;
}
if($.isEmptyObject(data[catid]['child'])){
return false;
}
var optionHtml = '';
for(var i in data[catid]['child']){
var option_catid = data[catid]['child'][i];
optionHtml += '';
}
//$(this).nextAll().remove();
var $html = $(this).prop("outerHTML");
$html = $($html);
$html.find('option').remove();
$html.append(optionHtml);
$(this).after($html);
});
}
/*服务商品分类联动*/
function get_server_cat_html(selectname,data){
$('body').on('change','select[name="'+selectname+'[]"]',function(){
$(this).nextAll().remove();
var id = $(this).val();
console.log(typeof(id)+'----'+id);
if(id == '' || !id){
return false;
}
if($.isEmptyObject(data[id]['child'])){
return false;
}
var optionHtml = '';
for(var i in data[id]['child']){
var option_catid = data[id]['child'][i];
optionHtml += '';
}
//$(this).nextAll().remove();
var $html = $(this).prop("outerHTML");
$html = $($html);
$html.find('option').remove();
$html.append(optionHtml);
$(this).after($html);
});
}
/* 获取 页面url 的二维码 */
function get_page_qrcode(arr,select,logo,url){
if( logo == undefined){
logo = '';
}
if( url == undefined){
url = window.location.toString();
console.log(url);
}
$.ajax({
type:'post'
,url:'/api/common/getpageqrcode/'
,data:{ arr:arr,logo:logo,url:url}
,dataType: 'json'
,success:function(res){
if( typeof($(select).attr('src')) == "undefined" ){
if( $(select).children('img').length<=0 ){
var imgHtml = '
';
$(select).append(imgHtml);
}else{
$(select).find('img').attr('src',res.data);
}
$(select).find('a').attr('href',res.data);
}else{
$(select).attr('src',res.data);
}
}
,error:function(){
}
})
}
/*页面时间倒计时*/
// 这个会导致所有页面都会启动一次计数器,需要修改 20181227 rao
timer = setInterval(function pay_count_down(){
//这是服务器时间,不能使用new date 因为这是电脑的时间 跟实际不符合
var now_time = parseInt($('head').find('meta[name="server-timestamp"]').attr('content'));
$('head').find('meta[name="server-timestamp"]').attr('content',now_time+1);
$('.tdy-count-down').each(function(){
$_this = $(this);
if($_this.attr('data-time') == undefined){
$_this.attr('data-time',$_this.text());
}
var expire_time = $_this.attr('data-time');
var end_time = Date.parse(new Date(expire_time));
var time = end_time-now_time*1000;
if(time>=0){
var day = parseInt(time / 1000 / 86400);
var hour = parseInt((time / 1000 / 3600) % 24);
var minite = parseInt((time / 1000 / 60) % 60);
var second = parseInt(time / 1000 % 60);
$_this.text(day + "天" + hour + "小时" + minite + "分" + second + "秒");
}else{
//这里处理通过ajax去改变订单状态以及过期时间、
//这里先刷新页面
// window.location.reload();
$_this.removeClass('tdy-count-down');
$_this.attr('data-time','');
console.log('过期');
}
});
// if($('.tdy-count-down[data-time=""]').length == $('.tdy-count-down').length){
// clearInterval(timer);
// }
if($('.tdy-count-down').length == '0'){
clearInterval(timer);
}
},1000);
function change_url(p, url){
if(typeof(url) == 'undefined'){
url = document.location.href;
}
var a = [];
var u = url.split("?");
if(u[1]){
var q = u[1].split("&");
for(var i in q){
var c = q[i].split("=");
if(c[1]){
a[c[0]] = c[1];
}
}
}
for(var i in p){
a[i] = p[i]
}
var s = [];
for(var i in a){
s.push(i+'='+a[i]);
}
s = s.join('&');
return u[0]+'?'+s;
}
/*
*2019.5.9 张德长
*请求URL路径重写
*parameter 参数数组,如果参数有值则添加,如果没有值为空则删除
*/
/*
function change_url(parameter,url){
if(typeof(url) == 'undefined'){
url = document.location.href;
}
var parameter_arr = {};
if(url.indexOf("?") != -1){
var arr = url.split("?");
url = arr[0];//url地址
//处理原来链接上带的参数
if(arr[1]){
var new_arr = arr[1].split('&');
for(var $i = 0; $i < new_arr.length ; $i++){
var res = new_arr[$i].split('=');
//这里没判断会当链接上出现?=&aa=b;情况下,待会链接出现undefind实在丑
if(res[0]){
parameter_arr[res[0]] = (res[1]!='' ? res[1] : '');
}
}
}
}
//处理传来的数组参数
for(var index in parameter){
if(parameter[index] != ''){
//当值不是空的时候直接添加,当值已经存在的时候修改
parameter_arr[index] = parameter[index];
}else{
//如果值为空的时候查询出是否在数组中存在,存在的时候删除
delete parameter_arr[index];
}
}
//将参数拼接到链接后面
if(Object.keys(parameter_arr).length > 0){
url += '?';
for(var index1 in parameter_arr){
url += (index1 +'='+parameter_arr[index1] +'&');
}
url = url.substring(0,url.length-1);
}
return url;
}
*/